// pages/search-prod-show/search-prod-show.js
let sortTypes=[0,0,0]
var http = require('../../utils/http.js');
 var WxParse = require('../../wxParse/wxParse.js');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    sts: 0,
    sortType:0,
    showType:2,
    searchProdList:[],
    sprodName:"",
    current:1,
    hasMoreData: true, // 是否有更多数据
    loading: false // 是否正在加载中
  },

  changeShowType:function(){
    var showType = this.data.showType;
    if (showType==1){
      showType=2;
    }else{
      showType = 1;
    }
    this.setData({
      showType: showType
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let tName = options.prodName;
    this.setData({
      sprodName: tName
      
    });

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  //输入商品获取数据
  getSearchContent: function (e) {
    this.setData({
      sprodName: e.detail.value
    });
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.toLoadData();
  },
//请求商品接口 - 用于刷新或初始加载
  toLoadData:function(){
    var ths = this;
    //热门搜索
    var params = {
      url: "/search-service/search/searchProdPage",
      method: "GET",
      data: {
        current: this.data.current,
        size: 10,
        prodName: this.data.sprodName,
        sort: this.data.sts,
        sortType:this.data.sortType
      },
      callBack: function (res) {
        // res.records.forEach(element => {
        //   let myName = element.prodName;
        //   WxParse.wxParse('prodName', 'html', myName, ths,5);
        // }); 
        let help_list = res.records;
        for (let i = 0; i < help_list.length; i++) {
          WxParse.wxParse('infodetail' + i, 'html', help_list[i].prodName, ths);
          if (i === help_list.length - 1) {
            WxParse.wxParseTemArray("infodetailArr",'infodetail', help_list.length, ths)
          }
        }
        console.log(ths.data.infodetailArr);
        ths.setData({
          searchProdList: help_list,
        });
        // 停止下拉刷新动画
        wx.stopPullDownRefresh();
      },
    };
    http.request(params);
  },

//当前搜索页二次搜索商品
  toSearchConfirm:function(){
    this.setData({
      current: 1, // 搜索时重置为第一页
      hasMoreData: true // 重置更多数据标志
    });
    this.toLoadData();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () { 
    // 确保current不会小于1
    if (this.data.current > 1) {
      this.data.current = this.data.current - 1;
      this.toLoadData();
    } else {
      // 已经是第一页时，直接停止下拉刷新
      wx.stopPullDownRefresh();
    }
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    // 只有当有更多数据且不在加载中时才请求新数据
    if (this.data.hasMoreData && !this.data.loading) {
      this.data.current = this.data.current + 1;
      this.toLoadMoreData();
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

    /**
   * 状态点击事件
   */
  onStsTap: function(e) {
    var sts = e.currentTarget.dataset.sts;
    this.setData({
      sts: sts,
      sortType: sortTypes[sts]=sortTypes[sts]==0?1:0,
      current: 1, // 切换排序时重置为第一页
      hasMoreData: true // 重置更多数据标志
    });
    this.toLoadData();
  },

  // 请求商品接口 - 用于加载更多数据
  toLoadMoreData:function(){
    var ths = this;
    
    // 设置加载状态
    ths.setData({
      loading: true
    });
    
    var params = {
      url: "/search-service/search/searchProdPage",
      method: "GET",
      data: {
        current: this.data.current,
        size: 10,
        prodName: this.data.sprodName,
        sort: this.data.sts,
        sortType:this.data.sortType
      },
      callBack: function (res) {
        let new_list = res.records;
        
        // 更新加载状态
        ths.setData({
          loading: false
        });
        
        if (new_list.length > 0) {
          // 将新数据追加到现有列表
          let updatedList = ths.data.searchProdList.concat(new_list);
          
          // 处理新数据的富文本解析
          for (let i = 0; i < new_list.length; i++) {
            let index = ths.data.searchProdList.length + i;
            WxParse.wxParse('infodetail' + index, 'html', new_list[i].prodName, ths);
            if (i === new_list.length - 1) {
              setTimeout(function() {
                ths.setData({
                  searchProdList: updatedList
                });
              }, 0);
            }
          }
        } else {
          // 如果没有新数据，减少current并设置hasMoreData为false
          ths.data.current = ths.data.current - 1;
          ths.setData({
            hasMoreData: false
          });
        }
      },
    };
    http.request(params);
  },

  toProdPage: function (e) {
    var prodid = e.currentTarget.dataset.prodid;
    wx.navigateTo({
      url: '/pages/prod/prod?prodid=' + prodid,
    })
  },
})
